<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // every： &&  全true则true  
        var arr = [true, false, true, true];

        // -----------原生方法----------------------------------------------

        var res = arr.every(function (item, key, arr) {
            console.log(item, key, arr)
            return item;
        })
        console.log(res)

        // -----------用for底层来写------------------------------------------
        
        function everyMy(arr,fn){
            for(var i = 0 ; i < arr.length ; i++){
               if( ! fn(arr[i], i, arr)) return false    // return在函数内就不是跳出本次循环 而是结束函数
            }
            return true;
        }

        var res = everyMy(arr,function(item,index,arr){
            return item
        })
        console.log(res);

        // -----------挂在到原型上------------------------------------------

        Array.prototype.everyMy = function(fn){
            for(var i = 0 ; i < this.length ; i++){
               if( ! fn(this[i], i, this)) return false  // return在函数内就不是跳出本次循环 而是结束函数
            }
            return true;
        }

        var res= arr.everyMy(function(item,index,arr){
            return item
        })

        console.log(res);
    </script>
</body>
</html>